package main

import (
	"fmt"
	"gvb-server/core"
	flagi "gvb-server/flagI"
	"gvb-server/global"
	"gvb-server/routers"

	_ "gvb-server/docs"

	"github.com/gin-gonic/gin"
	"github.com/sirupsen/logrus"
)

func init() {
	// 读取配置文件【初始化】
	core.InitConfig()
}

// @title gvb-blog
// @version v1.0
// @description API 文档
// @host 127.0.0.1:8080
// @BasePath /
func main() {

	// 初始化日志
	global.Log = core.InitLogger()

	global.Log.Warning("Warning")
	global.Log.Error("Error")
	global.Log.Infof("Infof")
	logrus.Infof("日志初始化完成......") // 全局log使用
	var exp = global.Config.Jwt.Expires
	var IsUser = global.Config.Jwt.IsUser

	fmt.Println("========")
	fmt.Println(exp)
	fmt.Println(IsUser)
	// 连接redis·
	var Rdb = core.NewRedisClient()
	global.RDB = Rdb

	// 连接数据库
	h := core.HysglConnect()

	global.DB = h

	if h == nil {
		fmt.Println(`
		##############################################
		#                                            #
		
		#         Project Startup Error!             #

		#         未配置mysql，取消gorm连接          #
		
		#                                            #
		##############################################
	`)
		return
	}

	fmt.Println(`Msql连接成功......`)

	// flag操作 命令行参数绑定
	option := flagi.Parse()
	fmt.Println(option)
	if flagi.IsWebStop(option) {
		flagi.Makemigrations()
		return
	}

	gin.SetMode(global.Config.System.Env) // 设置模式
	// 初始化路由
	//router := gin.Default()
	//routers.AppRoutes(router)	换种方式
	router := routers.InitRoutes()
	host := global.Config.System.Addr()
	prod := global.Config.System.Prod
	fmt.Printf(`
		##############################################
		#                                            #
		
		#         Project Startup Success!           #
		
		#         Listening on port %d             #
		
		#                                            #
		##############################################
	`, prod)

	router.Run(host)
}

//GOOS=linux GOARCH=amd64 CGO_ENABLED=0  go build -o test

// testgo.eeeknow.com
